iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
自我挑戰組

JAVA系列 第 22

JAVA--GUI 圖形介面程式

  • 分享至 

  • xImage
  •  

GUI是由Component,LayoutManager以及Listener所組成的。Component是畫面的主要組成成分,本身並沒有可見的實體,其子類別才有顯現的效果。如果Component可以放入其他的Component,則這種Component就稱為是Container。Container裡面的Component的排放位置,可以用絕對座標,也可以透過LayoutManager加以調整。使用者以Mouse,Keyboard等操作GUI時,會產生相對應的Event,並由視窗系統將該Event傳遞給程式設計者所指定的Listener。例如使用者以Mouse的左鍵按下Button(一種Component)時,視窗系統會將ActionEvent傳給該Button的ActionListener(設計者實作的物件),由ActionListener決定採取的步驟。這種由使用者觸發的執行動作,和程序式語言由主程式開始呼叫其他程序的模式不同,我們稱之為事件驅動(Event Driven)模式。

AWT(Abstract Window Toolkit, java.awt.*)是JDK 1.0所提出來有關GUI的函式庫,在JDK 1.1時又修改了Event Handling的機制, 成為現在的樣子。當初為了快速開發出AWT, 以符合Java出版的時程, 因此在設計上, 是利用視窗系統已有的GUI元件為主。由於Java原始的設計理念具有跨平台的性質, 因此AWT只好取各家視窗系統(Windows,Open Look, Motif, Machintosh)上元件的交集, 因此AWT頗為陽春。

為了彌補AWT的不足, JDK自1.2以後提供新的JFC(Java Foundation Class)/Swing的程式庫(javax.swing)。Swing是以Java語言所寫出來的, 因此提供了更多樣化而複雜的元件, 如Image JButton, Image JLabel, JTree, JTable, JTabbedPane, JPopupMenu等等。而且由於Swing並不依靠底層的視窗系統畫出元件的外觀, 因此Swing可以讓使用者自行選定其所喜愛的look and feel。

為了讓原先使用AWT的應用程式能改用Swing的程式庫, AWT內所有的元件都有相對應以J開頭的Swing元件, 如Button對應JButton, TextField對應JTextField。原先AWT的程式只要把Source Code裡面的AWT元件前面加上J即可, 其餘Event Handling和LayoutManager均可沿用(除了JFrame, JDialog, JApplet, JWindow等最上層的Container不能直接加入元件, 必須透過getContentPane()取得放置的地方)。


上一篇
JAVA的Program,Process,Thread
下一篇
JAVA的IO
系列文
JAVA30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言